Relevant publications include: J. L. Flanagan, Speech Analysis, Synthesis and Perception, Springer-Verlag, 1972, pp. 378-386, (discusses phase vocoder-frequency-based speech analysis-synthesis system); Quatieri, et al., "Speech Transformations Based on a Sinusoidal Representation", IEEE TASSP, Vol, ASSP34, No. 6, December 1986, pp. 1449-1986, (discusses analysis-synthesis technique based on a sinusoidal representation); Griffin, "Multiband Excitation Vocoder", Ph.D. Thesis, M.I.T, 1987, (discusses an 8000 bps Multi-Band Excitation speech coder); Griffin, et al., "A High Quality 9.6 kbps Speech Coding System", Proc. ICASSP 86, pp. 125-128, Tokyo, Japan, Apr. 13-20, 1986, (discusses a 9600 bps Multi-Band Excitation speech coder); Griffin, et al., "A New Model-Based Speech Analysis/Synthesis System", Proc. ICASSP 85, pp. 513-516, Tampa, Fla., Mar. 26-29, 1985, (discusses Multi-Band Excitation speech model); Hardwick, "A 4.8 kbps Multi-Band Excitation Speech Coder", S.M. Thesis, M.I.T, May 1988, (discusses a 4800 bps Multi-Band Excitation speech coder); McAulay et al., "Mid-Rate Coding Based on a Sinusoidal Representation of Speech", Proc. ICASSP 85, pp. 945-948, Tampa, Fla., Mar. 26-29, 1985, (discusses the sinusoidal transform speech coder); Campbell et al., "The New 4800 bps Voice Coding Standard", Mil Speech Tech Conference, Nov. 1989, (discusses error correction in low rate speech coders); Campbell et al., "CELP Coding for Land Mobile Radio Applications", Proc. ICASSP 90, pp. 465-468, Albequerque, N. Mex. Apr. 3-6, 1990, (discusses error correction in low rate speech coders); Levesque et al., Error-Control Techniques for Digital Communication, Wiley, 1985, pp. 157-170, (discusses error correction in general); Jayant et al., Digital Coding of Waveforms, Prentice-Hall, 1984, (discusses quantization in general); Makhoul, et.al. "Vector Quantization in Speech Coding", Proc. IEEE, 1985, pp. 1551-1588, (discusses vector quantization in general); Digital Voice Systems, Inc., "INMARSAT-M Voice Coder", Version 1.1, Dec. 5, 1990, (discusses 6.4 kbps IMBE speech coder for INMARSAT-M standard), Jayant et al., "Adaptive Postfiltering of 16 kb/s-ADPCM Speech", Proc. ICASSP 86, pp. 829-832, Tokyo, Japan, Apr. 13-20, 1986, (discusses adaptive postfiltering of speech). The contents of these publications are incorporated herein by reference.
The problem of speech coding (compressing speech into a small number of bits) has a large number of applications, and as a result has received considerable attention in the literature. One class of speech coders (vocoders) which have been extensively studied and used in practice is based on an underlying model of speech. Examples from this class of vocoders include linear prediction vocoders, homomorphic vocoders, sinusoidal transform coders, multi-band excitation speech coders, improved multi-band excitation speech coders and channel vocoders. In these vocoders, speech is characterized on a short-time basis through a set of model parameters. The model parameters typically consist of some combination of voiced/unvoiced decisions, voiced/unvoiced probability measure, pitch period, fundamental frequency, gain, spectral envelope parameters and residual or error parameters. For this class of speech coders, speech is analyzed by first segmenting speech using a window such as a Hamming window. Then, for each segment of speech, the model parameters are estimated and quantized. The quantized model parameters may be combined with additional error correction data and then transmitted. In order to reconstruct speech, the quantized model parameters are used to synthesize speech using the speech model.
In some speech coding applications such as communications, speech coding is used to reduce the amount of data that must be transmitted. In this case, the received bits may differ from the transmitted bits due to noise in the transmission channel. This problem also exists in other applications such as speech storage where bit errors are caused by noise and other limitations in the storage medium. In these instances the presence of bit errors in the speech data may cause the synthesized speech to suffer significant quality degradation.
One approach to combat this problem is to use error correction codes or error detection codes. In this approach, the bits representing the speech model parameters are converted to another set of bits which are more robust to bit errors. The use of error correction or detection codes typically increases the number of bits which must be transmitted or stored. The number of extra bits which must be transmitted is usually related to the robustness of the error correction or detection code. In most applications, it is desirable to minimize the total number of bits which are transmitted or stored. In this case the error correction or detection codes must be selected to maximize the overall system performance.
Another problem in this class of speech coding systems is that limitations in the estimation of the speech model parameters may cause quality degradion in the synthesized speech. Subsequent quantization of the model parameters induces further degradation. This degradation can take the form of reverberant or muffled quality to the synthesized speech. In addition background noise or other artifacts may be present which did not exist in the original speech. This form of degradation occurs even if no bit errors are present in the speech data, however bit errors can make this problem worse. Typically speech coding systems attempt to optimize the parameter estimators and parameter quantizers to minimize this form of degradation. Other systems attempt to reduce the degradations by post-filtering. In post-filtering the output speech is filtered in the time domain with an adaptive all-pole filter to sharpen the format peaks. This method does not allow fine control over the spectral enhancement process and it is computationally expensive and inefficient for frequency domain speech coders.
The invention described herein applies to many different speech coding methods, which include but are not limited to linear predictive speech coders, channel vocoders, homomorphic vocoders, sinusoidal transform coders, multi-band excitation speech coders and improved multiband excitation (IMBE) speech coders. For the purpose of describing this invention in detail, we use the 6.4 kbps IMBE speech coder which has recently been standardized as part of the INMARSAT-M (International Marine Satellite Organization) satellite communication system. This coder uses a robust speech model which is referred to as the Multi-Band Excitation (MBE) speech model.
The MBE speech model was developed by Griffin and Lim in 1984. This model uses a more flexible representation of the speech signal than traditional speech models. As a consequence it is able to produce more natural sounding speech, and it is more robust to the presence of acoustic background noise. These properties have allowed the MBE speech model to be used for high quality low-rate speech coders.
Let s(n) denote a discrete speech signal obtained by sampling an analog speech signal. In order to focus attention on a short segment of speech over which the model parameters are assumed to be constant, the signal s(n) is multiplied by a window w(n) to obtain a windowed speech segment or frame, s.sub.w (n). The speech segment s.sub.w (n) is modelled as the response of a linear filter h.sub.w (n) to some excitation signal e.sub.w (n). Therefore, S.sub.w (.omega.), the Fourier Transform of s.sub.w (n), can be expressed as EQU S.sub.w (.omega.)=H.sub.w (.omega.)E.sub.w (.omega.) (1)
where H.sub.w (.omega.) and E.sub.w (.omega.) are the Fourier Transforms of h.sub.w (n) and e.sub.w (n), respectively. The spectrum H.sub.w (.omega.) is often referred to as the spectral envelope of the speech segment.
In traditional speech models speech is divided into two classes depending upon whether the signal is mostly periodic (voiced) or mostly noise-like (unvoiced). For voiced speech the excitation signal is a periodic impulse sequence, where the distance between impulses is the pitch period. For unvoiced speech the excitation signal is a white noise sequence.
In traditional speech models each speech segment is classified as either entirely voiced or entirely unvoiced. In contrast the MBE speech model divides the excitation spectrum into a number of non-overlapping frequency bands and makes a voiced or unvoiced (V/UV) decision for each frequency band. This approach allows the excitation signal for a particular speech segment to be a mixture of periodic (voiced) energy and aperiodic (unvoiced) energy. This added flexibility in the modelling of the excitation signal allows the MBE speech model to produce high quality speech and to be robust to the presence of background noise.
Speech coders based on the MBE speech model use an algorithm to estimate a set of model parameters for each segment of speech. The MBE model parameters consist of a fundamental frequency, a set of V/UV decisions which characterize the excitation signal, and a set of spectral amplitudes which characterize the spectral envelope. Once the MBE model parameters have been estimated for each segment, they are quantized and transmitted to the decoder. The decoder then reconstructs the model parameters and synthesizes a speech signal from the MBE model parameters
TABLE 1 ______________________________________ Bit Allocation Among Model Parameters Parameter Number of Bits ______________________________________ Fundamental Frequency 8 Voiced/Unvoiced Decisions K Spectral Amplitudes 75-K ______________________________________
Efficient methods for quantizing the MBE model parameters have been developed. These methods are capable of quantizing the model parameters at virtually any bit rate above 2 kbps. The 6.4 kbps IMBE speech coder used in the INMARSAT-M satellite communication system uses a 50 Hz frame rate. Therefore 128 bits are available per frame. Of these 128 bits, 45 bits are reserved for forward error correction. The remaining 83 bits per frame are used to quantize the MBE model parameters, which consist of a fundamental frequency .omega..sub.0, a set of V/UV decisions .nu..sub.k for 1.ltoreq.k.ltoreq.K, and a set of spectral amplitudes M.sub.l for 1.ltoreq.l.ltoreq.L. The values of K and L vary depending on the fundamental frequency of each frame. The 83 available bits are divided among the model parameters as shown in Table 1.
The fundamental frequency is quantized by first converting it to its equivalent pitch period using Equation (2). ##EQU1## The value of P.sub.0 is typically restricted to the range 20.ltoreq.P.sub.0 .ltoreq.120 assuming an 8 kHz sampling rate. In the 6.4 kbps IMBE system this parameter is uniformly quantized using 8 bits and a step size of 0.5. This corresponds to a pitch accuracy of one half sample.
The K V/UV decisions are binary values. Therefore they can be encoded using a single bit per decision. The 6.4 kbps system uses a maximum of 12 decisions, and the width of each frequency band is equal to 3.omega..sub.0. The width of the highest frequency band is adjusted to include frequencies up to 3.8 kHz.
The spectral amplitudes are quantized by forming a set of prediction residuals. Each prediction residual is the difference between the logarithm of the spectral amplitude for the current frame and the logarithm of the spectral amplitude representing the same frequency in the previous speech frame. The spectral amplitude prediction residuals are then divided into six blocks each containing approximately the same number of prediction residuals. Each of the six blocks is then transformed with a Discrete Cosine Transform (DCT) and the D.C. coefficients from each of the six blocks are combined into a 6 element Prediction Residual Block Average (PRBA) vector. The mean is subtracted from the PRBA vector and quantized using a 6 bit non-uniform quantizer. The zero-mean PRBA vector is then vector quantized using a 10 bit vector quantizer. The 10 bit PRBA codebook was designed using a k-means clustering algorithm on a large training set consisting of zero-mean PRBA vectors from a variety of speech material. The higher-order DCT coefficients which are not included in the PRBA vector are quantized with scalar uniform quantizers using the 59-K remaining bits. The bit allocation and quantizer step sizes are based upon the long-term variances of the higher order DCT coefficients.
There are several advantages to this quantization method. First, it provides very good fidelity using a small number of bits and it maintains this fidelity as L varies over its range. In addition the computational requirements of this approach are well within the limits required for real-time implementation using a single DSP such as the AT&T DSP32C. Finally this quantization method separates the spectral amplitudes into a few components, such as the mean of the PRBA vector, which are sensitive to bit errors, and a large number of other components which are not very sensitive to bit errors. Forward error correction can then be used in an efficient manner by providing a high degree of protection for the few sensitive components and a lesser degree of protection for the remaining components. This is discussed in the next section.